\documentclass{report}

\usepackage{graphicx}

\title{Use Cases For Shopping List Application}

\author{Crazy Pete}


\begin{document}

\maketitle


\tableofcontents



\chapter*{Introduction}

This describes the use cases for a simple shopping list application.
There is no unique indexing on this list at this time, all that is required
is that each entry have at least 1 character in the item name.
Unless otherwise noted, all use cases handle error/failure via the
described standard error handler.

%\includegraphics[scale=0.5]{Diagram1.eps}

\chapter{Database Use Cases}

\section{Login}

The actor wants to establish valid credentials and obtain a database
connection.

\begin{itemize}

  \item Preconditions

  A valid Database URL or Address is provided

  \item Entry:

  Actor initiates login function

  \item Action:

  \begin{enumerate}

    \item System prompts for User ID and Password
    \item Actor enters text
    \item Actor selects ``OK'' to send credentials
    \item System validates credentials and establishes connection\\
    -OR- 
    \item Actor selects ``Cancel'' to stop
    \item System returns to previous page

  \end{enumerate}

  \item Success:

  \begin{enumerate}
    \item Actor obtains database connection 
    \item Actor goes to View List use case
  \end{enumerate}

  \item Failure:

    \begin{itemize}
      \item Invalid Credentials
        
        Actor is informed and returned to login screen

      \item Connection Error

        Actor is informed via standard error handler 
        
    \end{itemize}

\end{itemize}


\section{Logout}

\begin{itemize}
\item Entry:

Actor initiates logout function

\item Action:

System terminates DB connection

\item Success:

Database Connection Terminated

\item Failure:

Database can't be reached

\end{itemize}

\chapter{Item Use Cases}

\section {Create Item}


\section{Edit Item}


One or more fields associated with an Item are modified and the item is
saved.

\begin{enumerate}
\item User initiates use case from UI
\item Item Dialog Screen with current field values shown to actor
\item User Edits New Item
\item User Saves or Cancels Edit
\end{enumerate}

\section{Destroy Item}


\chapter{List Use Cases}

\section{Create List}

\section{Display List}

Display all the items in the list

Our ``Ground State'' will be the Display List case.  That is we begin the
application in the Display List state and return to this state by default.
This is first initiated by launching/selecting the application or url.
All the other use cases are initiated from this use case.

\section{Edit List}


\section{Add Item}

A new item is added to the list

This is a subcase of Modify Item in which the item is initially all blank.

\section{Select Item}

Allow the actor to select an item and initiate further actions on that item.


\section{View Item}

Display the complete information associated with an Item without permitting
modification


\begin{enumerate}
\item User initiates use case from UI
\item Displays Item Information
\item User Dismisses Item Information screen and returns ground state
\end{enumerate}


\section{Remove Item}

The selected item is deleted from the list


\section{Search List}


\section{Destroy List}


\appendix

\chapter{Standard Failure Handler}

On failure an error message is displayed which the actor is allowed to dismiss and
return to her previous state.



\end{document}
